package com.ynny.example05;
/*需求：制作奶茶的步骤
1.准备牛奶与茶叶
2.添加配料比如：珍珠 椰果等等
3.封闭打包

思考：哪些是模板通用方法？ 哪些是独特的方法？
提示：抽象类：奶茶  实现类：珍珠奶茶、椰果奶茶等等*/
public abstract class MilkTea {

    //准备牛奶和茶
    void prepareMilkAddTea(){
        System.out.println("准备牛奶和茶叶~~~");
        //通用方法
    }

    //准备封装
    void sealAndPack(){
        System.out.println("准备封装~~~");
        //通用方法
    }

    //抽象方法：添加配料，由子类实现
    abstract void addIngredient();

    //奶茶名称
    public void printName(String name) {
        System.out.println("制作的奶茶名称是：" + name);
    }

    //模板方法，定义了制作奶茶的步骤
    final void makeMilkTea(){
        prepareMilkAddTea();
        sealAndPack();
        addIngredient();

    }
}
